home *** CD-ROM | disk | FTP | other *** search
- ;;; util.scm: Deprecated utility functions for uim.
- ;;;
- ;;; Copyright (c) 2003-2009 uim Project http://code.google.com/p/uim/
- ;;;
- ;;; All rights reserved.
- ;;;
- ;;; Redistribution and use in source and binary forms, with or without
- ;;; modification, are permitted provided that the following conditions
- ;;; are met:
- ;;; 1. Redistributions of source code must retain the above copyright
- ;;; notice, this list of conditions and the following disclaimer.
- ;;; 2. Redistributions in binary form must reproduce the above copyright
- ;;; notice, this list of conditions and the following disclaimer in the
- ;;; documentation and/or other materials provided with the distribution.
- ;;; 3. Neither the name of authors nor the names of its contributors
- ;;; may be used to endorse or promote products derived from this software
- ;;; without specific prior written permission.
- ;;;
- ;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- ;;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- ;;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ;;; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
- ;;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- ;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- ;;; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- ;;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- ;;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- ;;; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- ;;; SUCH DAMAGE.
-
- ;; To find deprecated procedure invocation, type as follows (or type
- ;; it into M-x grep). But replacement of the deprecated procedures are
- ;; not necessary for uim 1.5. Keeping in mind avoiding the procedures
- ;; on writing a new code is enough. -- YamaKen 2007-07-11
- ;;
- ;; $ egrep '\((string-list-concat|string-find|truncate-list|list-head|nconc|string-to-list|symbolconc|nth|nthcdr|copy-list|digit->string|puts|siod-print|print|feature\?|uim-symbol-value-str)\b' *.scm
-
- (require-extension (srfi 1 34))
-
-
- ;; TODO: rewrite list processing with 'string-append'
- (define string-list-concat
- (lambda (lst)
- (apply string-append (reverse lst))))
-
- ;; TODO: replace with 'member'
- (define string-find
- (lambda (lst str)
- (member str lst)))
-
- ;; TODO: replace with 'take'
- (define truncate-list
- (lambda (lst n)
- (guard (err
- (else #f))
- (take lst n))))
-
- ;; TODO: replace with 'take'
- (define list-head take)
-
- (define nconc
- (lambda (lst obj)
- (if (null? lst)
- obj
- (begin
- (set-cdr! (last-pair lst) obj)
- lst))))
-
- ;; TODO: rewrite list processing with 'string->list'
- ;; split EUC-JP string into reversed character list
- (define string-to-list
- (lambda (s)
- (with-char-codec "EUC-JP"
- (lambda ()
- (map! (lambda (c)
- (let ((str (list->string (list c))))
- (with-char-codec "ISO-8859-1"
- (lambda ()
- (%%string-reconstruct! str)))))
- (reverse! (string->list s)))))))
-
- ;; TODO: replace with symbol-append
- ;;
- ;; Since symbol-append is not yet defined at here, enclose into closure.
- ;;(define symbolconc symbol-append)
- (define symbolconc
- (lambda args
- (apply symbol-append args)))
-
- ;; TODO: replace with list-ref
- (define nth
- (lambda (k lst)
- (list-ref lst k)))
-
- ;; TODO: replace with list-tail
- (define nthcdr
- (lambda (k lst)
- (guard (err
- (else #f))
- (list-tail lst k))))
-
- ;; TODO: replace with list-copy of SRFI-1
- (define copy-list
- (lambda (lst)
- (append lst '())))
-
- ;; TODO: replace with number->string
- (define digit->string
- (lambda (n)
- (and (number? n)
- (number->string n))))
-
- ;;
- ;; SIOD compatibility
- ;;
-
- ;; TODO: replace with 'display'
- (define puts display)
-
- ;; TODO: replace with 'writeln'
- (define siod-print
- (lambda (obj)
- (write obj)
- (newline)))
-
- ;; TODO: replace with 'writeln'
- (define print siod-print)
-
- ;; TODO: replace with 'provided?'
- (define feature?
- (lambda (sym)
- (provided? (symbol->string sym))))
-
- ;; for backward compatibility
- (define uim-symbol-value-str
- (lambda (sym)
- (let ((val (if (symbol-bound? sym)
- (symbol-value sym)
- "")))
- (if (symbol? val)
- (symbol->string val)
- val))))
-